package com.linkoog.devtools.json.file_editer.vs;

import com.intellij.openapi.vfs.NonPhysicalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileListener;
import com.intellij.openapi.vfs.VirtualFileSystem;
import com.intellij.openapi.vfs.newvfs.impl.NullVirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public abstract class NonPhysicalVirtualFileSystem extends VirtualFileSystem implements NonPhysicalFileSystem {

    @Nullable
    public VirtualFile findFileByPath(@NotNull String string) {
        return null;
    }

    @Nullable
    public VirtualFile refreshAndFindFileByPath(@NotNull String string) {
        return null;
    }

    public void refresh(boolean bl) {
    }

    public void addVirtualFileListener(@NotNull VirtualFileListener virtualFileListener) {
    }

    public void removeVirtualFileListener(@NotNull VirtualFileListener virtualFileListener) {
    }

    protected void deleteFile(@NotNull Object object, @NotNull VirtualFile virtualFile) {
    }

    protected void moveFile(@NotNull Object object, @NotNull VirtualFile virtualFile, @NotNull VirtualFile virtualFile2) {
    }

    protected void renameFile(@NotNull Object object, @NotNull VirtualFile virtualFile, @NotNull String string) {
    }

    @NotNull
    protected VirtualFile createChildFile(@NotNull Object object, @NotNull VirtualFile virtualFile, @NotNull String string) {
        return NullVirtualFile.INSTANCE;
    }

    @NotNull
    protected VirtualFile createChildDirectory(@NotNull Object object, @NotNull VirtualFile virtualFile, @NotNull String string) {
        return NullVirtualFile.INSTANCE;
    }

    @NotNull
    protected VirtualFile copyFile(@NotNull Object object, @NotNull VirtualFile virtualFile, @NotNull VirtualFile virtualFile2, @NotNull String string) {
        return NullVirtualFile.INSTANCE;
    }

    public boolean isReadOnly() {
        return true;
    }

}
